#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

int gval=100;
int main()
{
    printf("父进程开始运行,pid: %d\n", getpid());
    pid_t id = fork();
    if(id < 0)
    {
        perror("fork");
        return 1;
    }
    else if(id == 0)
    {
        printf("我是一个子进程 !, 我的pid: %d, 我的父进程id: %d, gval: %d\n", getpid(), getppid(), gval);
        sleep(5);
        // child
        while(1)
        {
            sleep(1);
            printf("子进程修改变量: %d->%d", gval, gval+10);
            gval+=10; // 修改
            printf("我是一个子进程 !, 我的pid: %d, 我的父进程id: %d\n", getpid(), getppid());
        }
    }
    else
    {
        //father
        while(1)
        {
            sleep(1);
            printf("我是一个父进程 !, 我的pid: %d, 我的父进程id: %d, gval: %d\n", getpid(), getppid(), gval);
        }
    }
    printf("进程开始运行,pid: %d\n", getpid());
 //   printf("父进程开始运行,pid: %d\n", getpid());
 //   pid_t id = fork();
 //   if(id < 0)
 //   {
 //       perror("fork");
 //       return 1;
 //   }
 //   else if(id == 0)
 //   {
 //       // child
 //       while(1)
 //       {
 //           sleep(1);
 //           printf("我是一个子进程 !, 我的pid: %d, 我的父进程id: %d\n", getpid(), getppid());
 //       }
 //   }
 //   else
 //   {
 //       //father
 //       while(1)
 //       {
 //           printf("%d\n",id);
 //           sleep(1);
 //           printf("我是一个父进程 !, 我的pid: %d, 我的父进程id: %d\n", getpid(), getppid());
 //       }
 //   }
 // 

    ///////////////////////////////////////////////////////////////////////////
  //printf("父进程开始运行,pid: %d\n", getpid());
  //pid_t id = fork();
  //printf("进程开始运行,pid: %d\n", getpid());
  //while(1)
  //{
  //  sleep(1);
  //  printf("我是一个子进程pid: %d，我的父进程：%d\n",getpid(),getppid());
  //}
}
